package org.zh.svs.pro.entity;

import org.springframework.util.StringUtils;

import org.zh.client.jdbc.TCCache;
import org.zh.client.jdbc.Table;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.HashMap;
import java.util.Map;
import java.util.Objects;

@Table("teacher")
public class Teacher {
    /**
     * 教师ID--->int--->teacher_id--->int unsigned--->PRI--->auto_increment
     */
    private Long teacherId;
    /**
     * 名字--->varchar--->teacher_name--->varchar(20)--->MUL--->
     */
    private String teacherName;
    /**
     * 年龄--->tinyint--->teacher_age--->tinyint unsigned--->MUL--->
     */
    private Integer teacherAge;
    /**
     * 身份证号码--->char--->teacher_identity_card--->char(18)--->UNI--->
     */
    private String teacherIdentityCard;
    /**
     * 出生日期--->datetime--->teacher_birthday--->datetime--->MUL--->
     */
    private LocalDateTime teacherBirthday;
    /**
     * 入职时间--->datetime--->teacher_onboarding_date--->datetime--->MUL--->
     */
    private LocalDateTime teacherOnboardingDate;
    /**
     * 性别--->set--->teacher_gender--->set('男','女')--->MUL--->
     */
    private String teacherGender;
    /**
     * 特长--->varchar--->teacher_specialty--->varchar(100)--->--->
     */
    private String teacherSpecialty;
    /**
     * 民族--->varchar--->teacher_ethnic_group--->varchar(20)--->--->
     */
    private String teacherEthnicGroup;
    /**
     * 国籍--->varchar--->teacher_nationality--->varchar(20)--->MUL--->
     */
    private String teacherNationality;
    /**
     * 电话号码--->char--->teacher_phone_number--->char(11)--->UNI--->
     */
    private String teacherPhoneNumber;
    /**
     * 邮箱地址--->varchar--->teacher_email--->varchar(50)--->--->
     */
    private String teacherEmail;
    /**
     * 学历--->varchar--->teacher_educational_background--->varchar(20)--->--->
     */
    private String teacherEducationalBackground;
    /**
     * 住址--->varchar--->teacher_address--->varchar(100)--->--->
     */
    private String teacherAddress;
    /**
     * 毕业于哪个学校--->varchar--->teacher_school--->varchar(50)--->--->
     */
    private String teacherSchool;
    /**
     * 教师资格证书--->varchar--->teacher_teaching_certificate--->varchar(50)--->--->
     */
    private String teacherTeachingCertificate;
    /**
     * 工资--->decimal--->teacher_salary--->decimal(10,3)--->--->
     */
    private BigDecimal teacherSalary;
    /**
     * 教师的兴趣爱好--->varchar--->teacher_hobbies--->varchar(50)--->--->
     */
    private String teacherHobbies;

    public Long getTeacherId() {
        return teacherId;
    }

    public void setTeacherId(Long teacherId) {
        this.teacherId = teacherId;
    }

    public String getTeacherName() {
        return teacherName;
    }

    public void setTeacherName(String teacherName) {
        this.teacherName = teacherName;
    }

    public Integer getTeacherAge() {
        return teacherAge;
    }

    public void setTeacherAge(Integer teacherAge) {
        this.teacherAge = teacherAge;
    }

    public String getTeacherIdentityCard() {
        return teacherIdentityCard;
    }

    public void setTeacherIdentityCard(String teacherIdentityCard) {
        this.teacherIdentityCard = teacherIdentityCard;
    }

    public LocalDateTime getTeacherBirthday() {
        return teacherBirthday;
    }

    public void setTeacherBirthday(LocalDateTime teacherBirthday) {
        this.teacherBirthday = teacherBirthday;
    }

    public LocalDateTime getTeacherOnboardingDate() {
        return teacherOnboardingDate;
    }

    public void setTeacherOnboardingDate(LocalDateTime teacherOnboardingDate) {
        this.teacherOnboardingDate = teacherOnboardingDate;
    }

    public String getTeacherGender() {
        return teacherGender;
    }

    public void setTeacherGender(String teacherGender) {
        this.teacherGender = teacherGender;
    }

    public String getTeacherSpecialty() {
        return teacherSpecialty;
    }

    public void setTeacherSpecialty(String teacherSpecialty) {
        this.teacherSpecialty = teacherSpecialty;
    }

    public String getTeacherEthnicGroup() {
        return teacherEthnicGroup;
    }

    public void setTeacherEthnicGroup(String teacherEthnicGroup) {
        this.teacherEthnicGroup = teacherEthnicGroup;
    }

    public String getTeacherNationality() {
        return teacherNationality;
    }

    public void setTeacherNationality(String teacherNationality) {
        this.teacherNationality = teacherNationality;
    }

    public String getTeacherPhoneNumber() {
        return teacherPhoneNumber;
    }

    public void setTeacherPhoneNumber(String teacherPhoneNumber) {
        this.teacherPhoneNumber = teacherPhoneNumber;
    }

    public String getTeacherEmail() {
        return teacherEmail;
    }

    public void setTeacherEmail(String teacherEmail) {
        this.teacherEmail = teacherEmail;
    }

    public String getTeacherEducationalBackground() {
        return teacherEducationalBackground;
    }

    public void setTeacherEducationalBackground(String teacherEducationalBackground) {
        this.teacherEducationalBackground = teacherEducationalBackground;
    }

    public String getTeacherAddress() {
        return teacherAddress;
    }

    public void setTeacherAddress(String teacherAddress) {
        this.teacherAddress = teacherAddress;
    }

    public String getTeacherSchool() {
        return teacherSchool;
    }

    public void setTeacherSchool(String teacherSchool) {
        this.teacherSchool = teacherSchool;
    }

    public String getTeacherTeachingCertificate() {
        return teacherTeachingCertificate;
    }

    public void setTeacherTeachingCertificate(String teacherTeachingCertificate) {
        this.teacherTeachingCertificate = teacherTeachingCertificate;
    }

    public BigDecimal getTeacherSalary() {
        return teacherSalary;
    }

    public void setTeacherSalary(BigDecimal teacherSalary) {
        this.teacherSalary = teacherSalary;
    }

    public String getTeacherHobbies() {
        return teacherHobbies;
    }

    public void setTeacherHobbies(String teacherHobbies) {
        this.teacherHobbies = teacherHobbies;
    }

    @Override
    public String toString() {
        return "Teacher{" + "teacherId=" + teacherId + ", teacherName='" + teacherName + '\'' + ", teacherAge=" + teacherAge + ", teacherIdentityCard='" + teacherIdentityCard + '\'' + ", teacherBirthday=" + teacherBirthday + ", teacherOnboardingDate=" + teacherOnboardingDate + ", teacherGender='" + teacherGender + '\'' + ", teacherSpecialty='" + teacherSpecialty + '\'' + ", teacherEthnicGroup='" + teacherEthnicGroup + '\'' + ", teacherNationality='" + teacherNationality + '\'' + ", teacherPhoneNumber='" + teacherPhoneNumber + '\'' + ", teacherEmail='" + teacherEmail + '\'' + ", teacherEducationalBackground='" + teacherEducationalBackground + '\'' + ", teacherAddress='" + teacherAddress + '\'' + ", teacherSchool='" + teacherSchool + '\'' + ", teacherTeachingCertificate='" + teacherTeachingCertificate + '\'' + ", teacherSalary=" + teacherSalary + ", teacherHobbies='" + teacherHobbies + '\'' + '}';
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        Teacher teacher = (Teacher) o;
        return Objects.equals(teacherId, teacher.teacherId) && Objects.equals(teacherName, teacher.teacherName) && Objects.equals(teacherAge, teacher.teacherAge) && Objects.equals(teacherIdentityCard, teacher.teacherIdentityCard) && Objects.equals(teacherBirthday, teacher.teacherBirthday) && Objects.equals(teacherOnboardingDate, teacher.teacherOnboardingDate) && Objects.equals(teacherGender, teacher.teacherGender) && Objects.equals(teacherSpecialty, teacher.teacherSpecialty) && Objects.equals(teacherEthnicGroup, teacher.teacherEthnicGroup) && Objects.equals(teacherNationality, teacher.teacherNationality) && Objects.equals(teacherPhoneNumber, teacher.teacherPhoneNumber) && Objects.equals(teacherEmail, teacher.teacherEmail) && Objects.equals(teacherEducationalBackground, teacher.teacherEducationalBackground) && Objects.equals(teacherAddress, teacher.teacherAddress) && Objects.equals(teacherSchool, teacher.teacherSchool) && Objects.equals(teacherTeachingCertificate, teacher.teacherTeachingCertificate) && Objects.equals(teacherSalary, teacher.teacherSalary) && Objects.equals(teacherHobbies, teacher.teacherHobbies);
    }

    @Override
    public int hashCode() {
        return Objects.hash(teacherId, teacherName, teacherAge, teacherIdentityCard, teacherBirthday, teacherOnboardingDate, teacherGender, teacherSpecialty, teacherEthnicGroup, teacherNationality, teacherPhoneNumber, teacherEmail, teacherEducationalBackground, teacherAddress, teacherSchool, teacherTeachingCertificate, teacherSalary, teacherHobbies, teacherHobbies);
    }

}